package com.diandian.backend.store.mapper;

import com.diandian.backend.store.domain.StoreJingdongHomeStoreTree;
import com.diandian.backend.store.dto.*;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

@Mapper
public interface StoreJingdongHomeStoreTreeMapper {

    // 查询记录数
    Integer getCount(@Param("data") StoreJingdongHomeStoreTreePageParamDTO requestDTO);

    // 查询分页中的数据集合
    List<StoreJingdongHomeStoreTree> getPage(@Param("data") StoreJingdongHomeStoreTreePageParamDTO requestDTO, @Param("pageSize") Integer pageSize, @Param("offset") Integer offset);

    // 查询详情
    StoreJingdongHomeStoreTree getDetail(@Param("data") StoreJingdongHomeStoreTreeDetailParamDTO requestDTO);

    // 根据数据id更新记录
    void updateById(@Param("data") StoreJingdongHomeStoreTreeUpdateByIdParamDTO param);

    void updateNodePath(@Param("id") Long id, @Param("nodePath") String nodePath);

    void updateParentInfo(@Param("id") Long id, @Param("parentNodeCode") String parentNodeCode, @Param("nodePath") String nodePath, @Param("nodeLevel") Integer nodeLevel);

    void updateNextPathInfo(@Param("datalist") List<StoreJingdongHomeStoreTreeUpdateByIdParamDTO> datalist);

    // 根据数据id删除记录
    void deleteById(@Param("data") StoreJingdongHomeStoreTreeDeleteByIdParamDTO param);

    // 新增
    void add(@Param("data") StoreJingdongHomeStoreTreeAddParamDTO param);

    // 查询数据集合
    List<StoreJingdongHomeStoreTree> getList(@Param("data") StoreJingdongHomeStoreTreeListParamDTO requestDTO);

}